package IPrototipo.Funcionalidades.ABMCompetencia;

import javax.swing.AbstractAction;
import javax.swing.JPanel;
import javax.swing.JTextField;

import IPrototipo.Entidades.Datos;
import IPrototipo.Entidades.Participante;
import IPrototipo.Funcionalidades.Menues.FrameUsuarioAutenticado;
import IPrototipo.Funcionalidades.Menues.iDialogGeneral;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.Component;
import javax.swing.Box;
import javax.swing.SwingConstants;
import javax.swing.border.TitledBorder;
import javax.swing.ImageIcon;
import javax.swing.border.LineBorder;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.util.Vector;

import javax.swing.BoxLayout;

public class altaParticipante extends iDialogGeneral {

	private static final long serialVersionUID = 1L;
	private JTextField txtNombreParticipante;
	private JTextField txtCorreoElectronico;
	private JTextField txtDireccionfoto;
	public Participante getNuevo() {
		return nuevo;
	}

	public void setNuevo(Participante nuevo) {
		this.nuevo = nuevo;
	}

	private Participante nuevo;
	
	private String getTxtNombreParticipante() {
		return txtNombreParticipante.getText();
	}

	private String getTxtCorreoElectronico() {
		return txtCorreoElectronico.getText();
	}

	private String getTxtDireccionfoto() {
		return txtDireccionfoto.toString();
	}

	
	public altaParticipante(FrameUsuarioAutenticado frame,boolean b) {
		
		
		super(frame,b);
		Dimension tam= new Dimension(400, 450);
		setTamanio(tam);
		
		setObligatorios(new Vector<Object>());
		
		label= new Dimension(150,30);
		getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
		
		JPanel panelTitulo = new JPanel();
		getContentPane().add(panelTitulo);
		panelTitulo.setMaximumSize(panel);

		JLabel lblTitulo = new JLabel("Alta Participante");
		lblTitulo.setFont(new Font("Vani", Font.PLAIN, 20));
		panelTitulo.add(lblTitulo);

		JPanel pnlNombre = new JPanel();
		FlowLayout flowLayout = (FlowLayout) pnlNombre.getLayout();
		flowLayout.setAlignment(FlowLayout.CENTER);
		getContentPane().add(pnlNombre);
		pnlNombre.setMaximumSize(panel);
		
		JLabel lblNombreDelParticipante = new JLabel("Nombre del Participante: ");
		lblNombreDelParticipante.setHorizontalAlignment(SwingConstants.LEFT);
		pnlNombre.add(lblNombreDelParticipante);
		lblNombreDelParticipante.setPreferredSize(label);
				
		txtNombreParticipante = new JTextField();
		pnlNombre.add(txtNombreParticipante);
		txtNombreParticipante.setPreferredSize(datos);
		
		
		JPanel pnlContacto = new JPanel();
		FlowLayout flowLayout1 = (FlowLayout) pnlContacto.getLayout();
		flowLayout1.setAlignment(FlowLayout.CENTER);
		getContentPane().add(pnlContacto);
		pnlContacto.setMaximumSize(panel);
		
		JLabel lblCorreoElectronico = new JLabel("Correo Electronico:");
		lblCorreoElectronico.setHorizontalAlignment(SwingConstants.LEFT);
		pnlContacto.add(lblCorreoElectronico);
		lblCorreoElectronico.setPreferredSize(label);
			
		txtCorreoElectronico = new JTextField();
		pnlContacto.add(txtCorreoElectronico);
		txtCorreoElectronico.setPreferredSize(datos);
		
		Component verticalStrut = Box.createVerticalStrut(20);
		getContentPane().add(verticalStrut);
		
		JPanel pnlImagen = new JPanel();
		getContentPane().add(pnlImagen);
		
		JPanel pnlimage = new JPanel();
		pnlimage.setBorder(new TitledBorder(null, "Imagen (Opcional) ", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		pnlImagen.add(pnlimage);
		pnlimage.setPreferredSize(new Dimension(300,200));
		
		ImageIcon icon = new ImageIcon(abmParticipante.class.getResource("/Imagenes/participante.png"));
		Image img = icon.getImage();
		Image newimg = img.getScaledInstance(128, 128,  java.awt.Image.SCALE_SMOOTH);
		ImageIcon newIcon = new ImageIcon(newimg);
		pnlimage.setLayout(new BoxLayout(pnlimage, BoxLayout.Y_AXIS));
		
		JPanel panelimagen = new JPanel();
		pnlimage.add(panelimagen);
		
		JPanel buttonPane = new JPanel();
		buttonPane.setMaximumSize(panel);
		
		JLabel label = new JLabel("");
		panelimagen.add(label);
		label.setBorder(new LineBorder(new Color(0, 0, 0), 1, true));
		label.setIcon(newIcon);
		label.setToolTipText("Imagen del Participante");
		
		JPanel panelBoton = new JPanel();
		pnlimage.add(panelBoton);
				
		txtDireccionfoto = new JTextField();
		txtDireccionfoto.setEnabled(false);
		txtDireccionfoto.setEditable(false);
		txtDireccionfoto.setText("nombreImagen.jpg");
		panelBoton.add(txtDireccionfoto);
		txtDireccionfoto.setPreferredSize(datos);

		JButton btnSeleccionar = new JButton("Seleccionar");
		panelBoton.add(btnSeleccionar);
		
		buttonPane.setLayout(new FlowLayout(FlowLayout.CENTER));
		getContentPane().add(buttonPane);
		
		JButton okButton = new JButton("Aceptar");
		okButton.setActionCommand("OK");
		buttonPane.add(okButton);
		okButton.addActionListener(new aceptarAction());

		Component horizontalStrut = Box.createHorizontalStrut(20);
		buttonPane.add(horizontalStrut);

		JButton cancelButton = new JButton("Cancelar");
		cancelButton.setActionCommand("Cancel");
		buttonPane.add(cancelButton);

		getObligatorios().add(txtCorreoElectronico);
		getObligatorios().add(txtNombreParticipante);
		
	}
	
	private class aceptarAction extends AbstractAction{

		public void actionPerformed(ActionEvent arg0) {
			if(camposObligatorios(getObligatorios())){
				nuevo= new Participante();
				Datos datosNuevos= new Datos();
				datosNuevos.setCorreoElectronico(getTxtCorreoElectronico());
				datosNuevos.setNombre(getTxtNombreParticipante());
				nuevo.setDatosActuales(datosNuevos);
				getParent().setFocusable(true);
				dispose();

			}else 
				gError.mostrarErrorCampos("Falta Completar Campos Obligatorios");
			
			
		}
		
	}

}
